using System.Collections.Generic;
using Kopernikus.Parsing.Lexing;

namespace Kopernikus.Parsing.GenericActions
{
    public interface ILexerAction<TLexer, TToken>
    {
        bool CanInvoke { get; }
        Symbol GetSymbol(string value, Dictionary<string, Symbol> symbolCache);

        TToken Invoke(TLexer instance, LexerMatch m);
    }
}